/**
 * API 接口地址映射文件
 * 
 * 该文件用于记录和管理项目中使用的所有后端接口地址，
 * 便于产品和后台开发人员了解接口情况，并为后期调整提供参考。
 * 
 * 注意：此文件仅用于文档和参考目的，实际接口调用请使用对应的 API 封装文件。
 */

/**
 * 用户管理相关接口
 */
export const USER_ENDPOINTS = {
  // 获取用户列表
  GET_USER_LIST: '/users',
  
  // 根据用户ID获取用户详情
  GET_USER_BY_ID: '/users/:id',
  
  // 创建用户
  CREATE_USER: '/users',
  
  // 更新用户信息
  UPDATE_USER: '/users/:id',
  
  // 删除用户
  DELETE_USER: '/users/:id',
  
  // 批量删除用户
  BATCH_DELETE_USERS: '/users/batch-delete'
} as const

/**
 * 系统管理相关接口
 */
export const SYSTEM_ENDPOINTS = {
  // 获取系统配置
  GET_SYSTEM_CONFIG: '/system/config',
  
  // 更新系统配置
  UPDATE_SYSTEM_CONFIG: '/system/config',
  
  // 获取系统日志
  GET_SYSTEM_LOGS: '/system/logs'
} as const

/**
 * 权限管理相关接口
 */
export const PERMISSION_ENDPOINTS = {
  // 获取角色列表
  GET_ROLES: '/roles',
  
  // 创建角色
  CREATE_ROLE: '/roles',
  
  // 更新角色
  UPDATE_ROLE: '/roles/:id',
  
  // 删除角色
  DELETE_ROLE: '/roles/:id',
  
  // 获取权限菜单
  GET_PERMISSION_MENUS: '/permissions/menus',
  
  // 更新权限菜单
  UPDATE_PERMISSION_MENUS: '/permissions/menus'
} as const

/**
 * 文件管理相关接口
 */
export const FILE_ENDPOINTS = {
  // 上传文件
  UPLOAD_FILE: '/files/upload',
  
  // 下载文件
  DOWNLOAD_FILE: '/files/download/:id',
  
  // 删除文件
  DELETE_FILE: '/files/:id'
} as const

/**
 * 数据统计相关接口
 */
export const STATISTICS_ENDPOINTS = {
  // 获取用户统计信息
  GET_USER_STATISTICS: '/statistics/users',
  
  // 获取系统访问统计
  GET_SYSTEM_VISITS: '/statistics/visits',
  
  // 获取业务数据统计
  GET_BUSINESS_DATA: '/statistics/business'
} as const

/**
 * 登录认证相关接口
 */
export const AUTH_ENDPOINTS = {
  // 用户登录
  LOGIN: '/auth/login',
  
  // 用户登出
  LOGOUT: '/auth/logout',
  
  // 刷新token
  REFRESH_TOKEN: '/auth/refresh',
  
  // 获取用户信息
  GET_USER_INFO: '/auth/user-info'
} as const

/**
 * 消息通知相关接口
 */
export const NOTIFICATION_ENDPOINTS = {
  // 获取消息列表
  GET_NOTIFICATIONS: '/notifications',
  
  // 标记消息为已读
  MARK_AS_READ: '/notifications/:id/read',
  
  // 批量标记为已读
  BATCH_MARK_AS_READ: '/notifications/read',
  
  // 删除消息
  DELETE_NOTIFICATION: '/notifications/:id'
} as const

// 所有接口的联合类型，便于类型检查
export type ApiEndpoint = 
  typeof USER_ENDPOINTS[keyof typeof USER_ENDPOINTS] |
  typeof SYSTEM_ENDPOINTS[keyof typeof SYSTEM_ENDPOINTS] |
  typeof PERMISSION_ENDPOINTS[keyof typeof PERMISSION_ENDPOINTS] |
  typeof FILE_ENDPOINTS[keyof typeof FILE_ENDPOINTS] |
  typeof STATISTICS_ENDPOINTS[keyof typeof STATISTICS_ENDPOINTS] |
  typeof AUTH_ENDPOINTS[keyof typeof AUTH_ENDPOINTS] |
  typeof NOTIFICATION_ENDPOINTS[keyof typeof NOTIFICATION_ENDPOINTS]

// 导出所有接口分组，方便统一查看
export const ALL_ENDPOINTS = {
  USER: USER_ENDPOINTS,
  SYSTEM: SYSTEM_ENDPOINTS,
  PERMISSION: PERMISSION_ENDPOINTS,
  FILE: FILE_ENDPOINTS,
  STATISTICS: STATISTICS_ENDPOINTS,
  AUTH: AUTH_ENDPOINTS,
  NOTIFICATION: NOTIFICATION_ENDPOINTS
} as const